package com.gopay.remote.riskcontrol.constants;

import com.gopay.remote.riskcontrol.vo.Strategy;

import java.util.ArrayList;
import java.util.List;

/**
 * 策略常量
 * @author xuhui
 * Created by Light on 2016/11/2.
 */
public class Strategies {
    public static final List<Strategy> LOG_IN;

    public static final List<Strategy> SIGN_UP;

    public static final List<Strategy> TRANS;

    public static final List<Strategy> WALLET_APP_EXPRESS_TRANS;

    public static final List<Strategy> BLACKLIST;

    public static final List<Strategy> ACCT_DEFAULT_LIMIT;

    static{
        LOG_IN = new ArrayList<>();
        Strategy strategy;
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.MSG_PRODUCT.value);
        strategy.setRefuseContinue(true);
        LOG_IN.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0004.value);
        strategy.setRefuseContinue(true);
        LOG_IN.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0005.value);
        strategy.setRefuseContinue(true);
        LOG_IN.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0006.value);
        strategy.setRefuseContinue(true);
        LOG_IN.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0007.value);
        strategy.setRefuseContinue(true);
        LOG_IN.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0009.value);
        strategy.setRefuseContinue(true);
        LOG_IN.add(strategy);


        SIGN_UP = new ArrayList<>();
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.MSG_PRODUCT.value);
        strategy.setRefuseContinue(true);
        SIGN_UP.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0002.value);
        strategy.setRefuseContinue(true);
        SIGN_UP.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0008.value);
        strategy.setRefuseContinue(true);
        SIGN_UP.add(strategy);

        TRANS = new ArrayList<>();
        //add by liuyu, 20170707, 风控白名单start
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.RISK_WHITELIST.value);
        strategy.setRefuseContinue(true);
        TRANS.add(strategy);
        //add by liuyu, 20170707, 风控白名单end
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.BLACKLIST.value);
        strategy.setRefuseContinue(false);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.G0001.value);
        strategy.setRefuseContinue(false);
        TRANS.add(strategy);
        //add by songfengli 20171120 start
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.DebitModelHandleService.value);
        strategy.setRefuseContinue(false);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.CreditModelHandleService.value);
        strategy.setRefuseContinue(false);
        TRANS.add(strategy);
        //add by songfengli 20171120 end
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.HG0001.value);
        strategy.setRefuseContinue(false);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.MSG_PRODUCT.value);
        strategy.setRefuseContinue(true);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.COM_RULE.value);
        strategy.setRefuseContinue(true);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.HG0002.value);
        strategy.setRefuseContinue(true);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.G0003.value);
        strategy.setRefuseContinue(true);
        TRANS.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.NEAR_REAL_TIME.value);
        strategy.setHandleService(HandleService.REPORT.value);
        strategy.setRefuseContinue(true);
        TRANS.add(strategy);

        WALLET_APP_EXPRESS_TRANS = new ArrayList<>();
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.G0001.value);
        strategy.setRefuseContinue(false);
        WALLET_APP_EXPRESS_TRANS.add(strategy);

        BLACKLIST = new ArrayList<>();
        //add by liuyu, 20170707, 风控白名单start
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.RISK_WHITELIST.value);
        strategy.setRefuseContinue(true);
        BLACKLIST.add(strategy);
        //add by liuyu, 20170707, 风控白名单end
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.BLACKLIST.value);
        strategy.setRefuseContinue(false);
        BLACKLIST.add(strategy);

        ACCT_DEFAULT_LIMIT = new ArrayList<>();
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.HG0004.value);
        strategy.setRefuseContinue(false);
        ACCT_DEFAULT_LIMIT.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.HG0005.value);
        strategy.setRefuseContinue(false);
        ACCT_DEFAULT_LIMIT.add(strategy);
        strategy = new Strategy();
        strategy.setEngine(Engine.REAL_TIME.value);
        strategy.setHandleService(HandleService.HG0006.value);
        strategy.setRefuseContinue(false);
        ACCT_DEFAULT_LIMIT.add(strategy);

    }


}
